package com.example.chapter07_server.provider;

import android.net.Uri;
import android.provider.BaseColumns;



import android.net.Uri;
import android.provider.BaseColumns;

/**
 * 定义用户信息ContentProvider的元数据类（常量类）
 * 作用：统一管理ContentProvider的访问地址（URI）、数据库表字段等信息，
 * 方便ContentProvider内部实现和外部（ContentResolver）调用时保持一致，避免硬编码错误
 */
public class UserInfoContent implements BaseColumns {

    /**
     * ContentProvider的唯一标识（权威名/Authority）
     * 格式通常为"包名.provider.自定义名称"，需与AndroidManifest.xml中注册ContentProvider时的authorities属性完全一致
     * 作用：外部应用通过该Authority定位到具体的ContentProvider
     */
    public static final String AUTHORITIES = "com.dongnaoedu.chapter07_server.provider.UserInfoProvider";

    /**
     * 访问该ContentProvider的基础URI（统一资源标识符）
     * 格式：content:// + Authority + /数据路径（通常对应数据库表名，这里"user"代表用户表）
     * 完整URI：content://com.dongnaoedu.chapter07_server.provider.UserInfoProvider/user
     * 作用：外部应用通过ContentResolver操作数据时，需传入该URI指定要访问的ContentProvider和数据表格
     */
    public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITIES + "/user");

    // 以下为用户表（user）的字段名称常量，与数据库表结构保持一致

    /**
     * 用户名字段
     * 对应数据库表中存储用户姓名的列
     */
    public static final String USER_NAME = "name";

    /**
     * 年龄字段
     * 对应数据库表中存储用户年龄的列
     */
    public static final String USER_AGE = "age";

    /**
     * 身高字段
     * 对应数据库表中存储用户身高的列（单位通常为cm）
     */
    public static final String USER_HEIGHT = "height";

    /**
     * 体重字段
     * 对应数据库表中存储用户体重的列（单位通常为kg）
     */
    public static final String USER_WEIGHT = "weight";

    /**
     * 婚姻状态字段
     * 对应数据库表中存储用户婚姻状况的列（通常用布尔值或整数表示，如1=已婚，0=未婚）
     */
    public static final String USER_MARRIED = "married";

    /**
     * 实现BaseColumns接口的意义：
     * BaseColumns是Android提供的基础列接口，内部定义了标准主键字段"_id"（常量BaseColumns._ID）
     * 实现该接口后，当前类会自动包含"_id"字段，符合Android数据库表的设计规范（建议所有表都以_id作为主键）
     */
}